package cn.jtfadmin.core.modules.sys.service;

import cn.jtfadmin.core.modules.sys.domain.dto.UserMenuRDTO;
import cn.jtfadmin.core.modules.sys.domain.entity.SysUserEntity;

import javax.validation.constraints.NotBlank;
import java.util.Set;

/**
 * 用户权限服务类<br/>
 * 与SysPermission 独立开来，<br/>
 * 专门用户系统
 * @since 0.0.1
 * @version 0.0.1
 * @author jtf
 */
public interface SysUserPermissionActionService {



    /**
     * 获取用户菜单，必须在事务内，否则角色等无法访问
     * @param sysUserEntity 用户实体
     * @return 菜单
     */
    UserMenuRDTO findUserMenu(SysUserEntity sysUserEntity);



    /**
     * 获取用户的数据权限，必须在事务内，否则角色等无法访问
     * @param sysUserEntity 用户
     * @return 数据权限
     */
    Set<String> findPermissionDataRule(SysUserEntity sysUserEntity);

    /**
     * 获取用户管理的部门id， ，必须在事务内
     * @param sysUserEntity 用户
     * @return 用户管理的部门id
     */
    Set<String> findManagerDepIds(SysUserEntity sysUserEntity);
}
